<template>
  <div>

  </div>
</template>

<script>
export default {
  data() {
    return {

    }
  },
  created() {

  },
  mounted() {
    // this.test
  },
  methods: {
    //文件下载一
    /**
     * form表单的形式
     *下载文件
     * @param {String} path - 请求的地址
     * @param {String} fileName - 文件名
     */
    downloadFile(downloadUrl, fileName) {
      // 创建表单
      const formObj = document.createElement('form');
      formObj.action = downloadUrl;
      formObj.method = 'get';
      formObj.style.display = 'none';
      // 创建input，主要是起传参作用
      const formItem = document.createElement('input');
      formItem.value = fileName; // 传参的值
      formItem.name = 'fileName'; // 传参的字段名
      // 插入到网页中
      formObj.appendChild(formItem);
      document.body.appendChild(formObj);
      formObj.submit(); // 发送请求
      document.body.removeChild(formObj); // 发送完remove
    },
    //文件下载二
    downloadFile2() {
      // open 或者 location.href
      window.open('downloadFile.zip')
      location.href = 'downloadFile.zip'
      // a标签的download
      // <a href="" download="test"></a>

    },

    /**
     * 利用blob解决文件下载
     *下载文件
     * @param {String} path - 下载地址
     * @param {String} name - 文件名，考虑兼容性问题，最好加上后缀
     */
    downloadFile3(path, name) {
      const xhr = new XMLHttpRequest();
      xhr.open('get', path); xhr.responseType = 'blob';
      xhr.send();
      xhr.onload = function () {
        if (this.status === 200 || this.status === 304) {
          // const blob = new Blob([this.response],{ type: xhr.getResponseHeader('')})
          // const url = URL.createObjectURL(blob);
          const url = URL.createObjectURL(this.response);
          const a = document.createElement('a');
          a.style.display = 'none';
          a.href = url;
          a.download = name;
          document.body.appendChild(a);
          a.click();
          document.body.removeChild(a);
          URL.revoke0bjectURL(url);
        }
      }
    },
    /**
     * 使用base64解决文件下载问题
     * 下载文件
     * @param {String} path - 请求的地址
     * @param {String} name - 文件名
     */
    downloadFile4(path, name) {
      const xhr = new XMLHttpRequest();
      xhr.open('get', path); xhr.responseType = 'blob';
      xhr.send();
      xhr.onload = function () {
        if (this.status === 200 || this.status === 304) {
          const fileReader = new FileReader();
          fileReader.readAsDataURL(this.response);
          fileReader.onload = function () {
            const a = document.createElement('a');
            a.style.display = 'none';
            a.href = this.result;
            a.download = name;
            document.body.appendChild(a);
            a.click();
            document.body.removeChild(a);
          }
        }
      }
    },

    /**
     * 函数注释例子
     * @author Wang <123@qq.com>
     * @license Apache-2.0
     * @param {Function} func 目标函数
     * @param {String|Number} name 名字
     * @param {Number} count 延迟时间，默认1秒
     * @return {Function} 函数
     * 
     */
    test(func, name, duration = 1000) {

    }





  }
}
</script>

<style scoped>
</style>